from django.shortcuts import HttpResponse
import json
from service.company_node_service import CompanyNodeService


def query_node(request):
    if request.method == 'GET':
        company_node_service = CompanyNodeService()
        rs = company_node_service.query_node()
        if len(rs) > 0:
            data = {"code": 200, "msg": "查询成功", "data": rs}
        else:
            data = {"code": 500, "msg": "没查询到数据", "data": None}
        return HttpResponse(json.dumps(data))


def create_node(request):
    if request.method == 'GET':
        company_node_service = CompanyNodeService()
        # 获取前端传递的企业核心属性参数（根据实际需求保留，此处为关键属性）
        上市代码 = request.GET.get("上市代码")
        企业名称 = request.GET.get("企业名称")  # 企业唯一标识核心属性
        信用评级 = request.GET.get("信用评级")
        报告期 = request.GET.get("报告期")
        主营业务 = request.GET.get("主营业务")
        成立日期 = request.GET.get("成立日期")
        注册资本 = request.GET.get("注册资本")
        上市状态 = request.GET.get("上市状态")
        统一社会信用代码 = request.GET.get("统一社会信用代码")  # 企业唯一标识属性
        市盈率 = request.GET.get("市盈率")

        # 创建节点（参数与service层create_node方法对应）
        try:
            company_node_service.create_node(
                上市代码=上市代码,
                企业名称=企业名称,
                信用评级=信用评级,
                报告期=报告期,
                主营业务=主营业务,
                成立日期=成立日期,
                注册资本=注册资本,
                上市状态=上市状态,
                统一社会信用代码=统一社会信用代码,
                市盈率=市盈率
            )
            data = {"code": 200, "msg": "创建成功", "data": None}
            return HttpResponse(json.dumps(data))
        except Exception as e:
            print(e)
            data = {"code": 500, "msg": "创建失败", "data": None}
            return HttpResponse(json.dumps(data))


def delete_node(request):
    if request.method == 'GET':
        company_node_service = CompanyNodeService()
        # 获取前端传递的企业名称（核心唯一标识，避免误删）
        企业名称 = request.GET.get("企业名称")

        try:
            company_node_service.delete_node(企业名称=企业名称)
            data = {"code": 200, "msg": "删除成功", "data": None}
            return HttpResponse(json.dumps(data))
        except Exception as e:
            print(e)
            data = {"code": 500, "msg": "删除失败"}
            return HttpResponse(json.dumps(data))


def update_node(request):
    if request.method == 'GET':
        company_node_service = CompanyNodeService()
        # 获取前端传递的企业核心属性参数（企业名称作为更新标识，其他属性按需更新）
        企业名称 = request.GET.get("企业名称")  # 用于定位待更新节点的核心标识
        上市代码 = request.GET.get("上市代码")
        信用评级 = request.GET.get("信用评级")
        报告期 = request.GET.get("报告期")
        主营业务 = request.GET.get("主营业务")
        注册资本 = request.GET.get("注册资本")
        市盈率 = request.GET.get("市盈率")

        try:
            company_node_service.update_node(
                企业名称=企业名称,  # 定位节点
                上市代码=上市代码,
                信用评级=信用评级,
                报告期=报告期,
                主营业务=主营业务,
                注册资本=注册资本,
                市盈率=市盈率
            )
            data = {"code": 200, "msg": "更新成功", "data": None}
            return HttpResponse(json.dumps(data))
        except Exception as e:
            print(e)
            data = {"code": 500, "msg": "更新失败"}
            return HttpResponse(json.dumps(data))

